1. Technical Field
The present invention relates generally to an improved data processing system and, in particular, to a method and system for improving the performance of data-presentation within a data processing system, whether the output form of the data-presentation is static, such as printing, or dynamic, such as displaying.
2. Description of Related Art
Some computer users are more familiar than others with the scalability and variability of computer resources. Graphics capability is one consideration of computer resources with which most users are familiar. Many users understand that printers can be fast or slow and that this speed varies for several reasons, most notably, time versus complexity. For example, complex graphics may require more time to generate. In general, users desire increasingly higher quality graphical output in decreasing amounts of time, and much effort in the computer industry is spent trying to achieve this goal. However, the solutions may be rather complex and inflexible, i.e., non-portable.
Data-presentation jobs are generally completed by either having an application send output-device-specific data directly to the output device while waiting for the output device to accept the data, or spooling the data to disk or memory for subsequent transfer to an output device. One spooling format is a binary data stream that is output-device-specific and often very large. The data stream may consist of bitmaps, data values, and output-device-specific language commands.
Since a large file may require a long time to transmit to a printer, whether connected to a stand-alone machine or located on a network, another spooling format can be used. This format is a recording of the parameters to application programming interface (API) calls that were made during the creation of the data-presentation job. For example, this format is a called a metafile in the OS/2 operating system, available from International Business Machines, Inc. A metafile contains metadata, which is data that describes other data. In an OS/2 metafile, the data values in the file are not binary values of graphical object representations, but represent graphical objects that may be created when the data values are used as parameters or inputs to API""s that are able to create and present the graphical objects.
In order for the graphical objects in a metafile to be generated, a backend subsystem must read one set of metadata in the metafile at a time, interpret the metadata to determine the identity of the API""s to be invoked for the particular set of metadata, and invoke the proper API""s with the metadata. Once the graphical objects are rendered in a presentation space, the backend subsystem may send the presentation space to an output device as output device-specific data. The backend subsystem""s interpretive process may be slow. Obviously, the backend subsystem of this method is platform-specific and/or output-device-specific, and hence, non-portable.
Virtual machine platforms are a new and evolving computing platform with Java being the most prevalent of these platforms. One of the most touted features of Java is its portability. With the xe2x80x9cwrite once, run anywherexe2x80x9d concept, it is envisioned that a Java application or applet could run on a mainframe computer, and without modification, also run on a hand-held device, a Personal Digital Assistant (PDA), a printer, or some other output device. Obviously, a PDA and a mainframe computer have widely varying computing resources. A Java virtual machine (JVM) running on each of these platforms may have widely varying amounts of memory or bandwidth at its disposal, and a properly designed JVM should take advantage of the available resources while accomplishing the goal of portability. In order to achieve these goals with respect to data-presentation processing, it is desirable to have a design of a JVM that addresses the common problems of performance and portability.
A data-presentation job is spooled using a virtual machine, such as a Java virtual machine, in a data processing system. Data-presentation may include static data-presentation and dynamic data-presentation. After a user issues a data-presentation job request, such as a print job request, all of the issuing application""s method calls are recorded as executable code. An executable data-presentation job file is then generated. An example of the executable data-presentation job file would be a Java .class file. The executable data-presentation job file may then be executed within a Java virtual machine to reproduce the desired data-presentation output.